﻿using DevExpress.XtraEditors;
using DevExpress.XtraReports.UI;
using DevTeam;
using System;
using System.Data;
using System.Windows.Forms;

namespace ConfExpert.Forms.Depo
{
    public partial class ArsivEtiketi : XPopupForm
    {
        int RaporTip;
        string SpName;
        string Ids;
        public DataTable dtEtiket { get; set; }

        public ArsivEtiketi(string Ids, int RaporTip, string SpName)
        {
            InitializeComponent();
            this.Ids = Ids;
            this.RaporTip = RaporTip;
            this.SpName = SpName;
        }

        public ArsivEtiketi(DataTable dtEtiket)
        {
            InitializeComponent();
            this.dtEtiket = dtEtiket; 
            RaporTip = 4;
            Ids = "";
        }

        private void KartelaEtiketi_Load(object sender, EventArgs e)
        {
            
            switch (RaporTip)
            {
                case 1: this.Text = "Arşiv Etiketi"; break;
                case 2: this.Text = "Kalite Etiketi"; break;
                case 3: this.Text = "Nümune Etiketi"; break;
                case 4: this.Text = "Showroom Etiketi"; break;
            }
        }

        private void btnPreview_Click(object sender, EventArgs e)
        {
            int bosEtiket = txtEmptyLabel.Text.ToInt();
            int tekrarEtiket = spnRepeat.Text.ToInt(-1);
            if ((RaporTip < 3 || RaporTip == 4) && bosEtiket > 35)
            {
                XtraMessageBox.Show("Bir sayfada 35'dan fazla boş etiket olamaz!", "Critical");
                return;
            }
            else if (RaporTip == 3 && bosEtiket > 9)
            {
                XtraMessageBox.Show("Bir sayfada 9'dan fazla boş etiket olamaz!", "Critical");
                return;
            }

            //<Etiket tekrar sayısı kadar idx çoğalt>
            string[] idxs = Ids.Split(',');
            string totalIdx = "";
            foreach (string idx in idxs)
                for (int i = 1; i <= tekrarEtiket; i++)
                    totalIdx = totalIdx + idx + ",";
            totalIdx.RemoveIfEndsWith(",");
            Ids = totalIdx;
            //</Etiket tekrar sayısı kadar idx çoğalt>

            XtraReport numune;

            switch (RaporTip)
            {
                case 1: numune = new Rapor.ArsivEtiketleri(Ids, bosEtiket, true, true, SpName); break;
                case 2: numune = new Rapor.YeniYapi.KaliteEtiketleri(Ids, bosEtiket, true, true, SpName); break;
                case 4: numune = new Rapor.YeniYapi.SREtiketleri(dtEtiket, bosEtiket,tekrarEtiket); break;
                default: numune = new XtraReport(); break;
            }

            numune.ShowPreview();
            this.DialogResult = DialogResult.OK;
        }

    }
}